#ifndef __BASIC_DBC_H__
#define __BASIC_DBC_H__

#include <basic/misc.h>
#include <basic/dbc_in.h>

__BEGIN_DECLS

/*
 * 绑定定长字符串
 */
extern int
dbc_bind_char(
        DBC_BIND *bind,             /* [IN,OUT] 绑定结构 */
        unsigned int idx,           /* [IN] 序号 */
        char *var,                  /* [IN] 字段 */
        unsigned int col_size       /* [IN] 字段长度 */
        );

/*
 * 绑定字符串
 */
extern int
dbc_bind_varchar(
        DBC_BIND *bind,             /* [IN,OUT] 绑定结构 */
        unsigned int idx,           /* [IN] 序号 */
        char *var                   /* [IN] 字段 */
        );

#define dbc_bind_date dbc_bind_varchar

/*
 * 绑定int
 */
extern int
dbc_bind_int(
        DBC_BIND *bind,             /* [IN,OUT] 绑定结构 */
        unsigned int idx,           /* [IN] 序号 */
        int var                     /* [IN] 字段 */
        );

/*
 * 绑定int64
 */
extern int
dbc_bind_int64(
        DBC_BIND *bind,             /* [IN,OUT] 绑定结构 */
        unsigned int idx,           /* [IN] 序号 */
        int64_t var                 /* [IN] 字段 */
        );

/*
 * 绑定double
 */
extern int
dbc_bind_double(
        DBC_BIND *bind,             /* [IN,OUT] 绑定结构 */
        unsigned int idx,           /* [IN] 序号 */
        double var                  /* [IN] 字段 */
        );

/*
 * 输出字符串
 */
extern char *
dbc_col_export_char(
        DBC_RSET *rset,             /* [IN] 结果集 */
        unsigned int row_idx,       /* [IN] 行 */
        unsigned int col_idx,       /* [IN] 列 */
        char *host                  /* [OUT] 输出缓冲区 */
        );

/*
 * 复制字符串
 */
extern char *   /* 复制的内容 */
dbc_col_dup_char(
        DBC_RSET *rset,             /* [IN] 结果集 */
        unsigned int row_idx,       /* [IN] 行 */
        unsigned int col_idx        /* [IN] 列 */
        );

/*
 * 接管字段
 */
extern char *   /* 接管的地址 */
dbc_col_take_char(
        DBC_RSET *rset,             /* [IN] 结果集 */
        unsigned int row_idx,       /* [IN] 行 */
        unsigned int col_idx        /* [IN] 列 */
        );

/*
 * 输出int
 */
extern int
dbc_col_export_int(
        DBC_RSET *rset,             /* [IN] 结果集 */
        unsigned int row_idx,       /* [IN] 行 */
        unsigned int col_idx        /* [IN] 列 */
        );

/*
 * 输出int64
 */
extern int64_t
dbc_col_export_int64(
        DBC_RSET *rset,             /* [IN] 结果集 */
        unsigned int row_idx,       /* [IN] 行 */
        unsigned int col_idx        /* [IN] 列 */
        );

/*
 * 输出double
 */
extern double
dbc_col_export_double(
        DBC_RSET *rset,             /* [IN] 结果集 */
        unsigned int row_idx,       /* [IN] 行 */
        unsigned int col_idx        /* [IN] 列 */
        );

#include <basic/oraproc.h>
#include <basic/mysqlc.h>
#include <basic/pgc.h>
#include <basic/sqlic.h>

__END_DECLS

#endif
